﻿using RandomKeyGenerator;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Entidades.entidades
{
    public class GrafoResumido : IComparable
    {
        private double mq;
        private int individuo;
        private int numClustersGerados;
        private double tempoObterMq;
        private int numClustersUnitarios;
        private int geracao;
        private double elite;

        public double Elite
        {
            get { return elite; }
            set { elite = value; }
        }
        private double mutante;

        public double Mutante
        {
            get { return mutante; }
            set { mutante = value; }
        }

  


        private Gene[] chaves;

        public Gene[] Chaves
        {
            get { return chaves; }
            set { chaves = value; }
        }


        public GrafoResumido(double mq, int individuo)
        {
            this.mq = mq;
            this.individuo = individuo;
        }


        public int Geracao
        {
            get { return geracao; }
            set { geracao = value; }
        }

    
        public double Mq
        {
            get { return mq; }
            set { mq = value; }
        }

        public int NumClustersUnitarios
        {
            get { return numClustersUnitarios; }
            set { numClustersUnitarios = value; }
        }


        

        public int Individuo
        {
            get { return individuo; }
            set { individuo = value; }
        }

        public double TempoObterMq
        {
            get { return tempoObterMq; }
            set { tempoObterMq = value; }
        }

        public int NumClustersGerados
        {
            get { return numClustersGerados; }
            set { numClustersGerados = value; }
        }



        public int CompareTo(object obj)
        {
            GrafoResumido gr = obj as GrafoResumido;

            if (gr.mq > this.mq)
                return 1;

            else if (gr.mq == this.mq)
                return 0;
            else
                return -1;
        }

        public int Value { get; set; }
    }
}
